3.2-mongo 命令
Create by fall on 17 Sep 2021 Recently revised in 25 Feb 2024
mongosh
可以使用 mongosh
命令进入 mongo 数据库专用命令行
数据库操作
# 查看当前数据库
db
# 查看一下当前拥有的数据库
show dbs
# 创建数据库
use [databaseName] # 使用 / 创建数据库
show dbs # 查看当前所有的数据库
# 删除数据库
db.dropDatabase() # 删除当前使用的数据库
show dbs
集合操作
# 添加集合
use test
db.createCollection("article") # 添加一个名为 article 的集合
show collections # 展示当前数据库内的集合
# 删除集合
db.article.drop() # 删除当前集合
show collections
插入文档
# db.collection.insert(document) #通过 collection 对象的 insert 方法向集合中插入文档
# 插入文档
db.createCollection('article')
db.article.insert({
name:'Fall',
description:'未来的前端艺术家',
createBy:'Fall',
selfWebUrl:'www.fall.com'
})
db.article.find({}) # 查询所有 article 的文档
更新数据
db.article.update({name:'fall'},{name:'fall_again'},{multi:false})
# 第一个参数,表示要替换的内容
# 第二个参数,表示替换后的内容
# 第三个选项为配置,multi 表示是否为多选,默认为 false
# 只进行替换 name 属性
db.article.update({name:'fall'},{$set:{name:'fall_again'}},{multi:false})
替换文档
db.article.save({})
删除文档
# 删除文档内容
# db.collection.remove(<query>,{justOne:<boolean>})
db.article.remove({'name':'fall'})
#删除 name 为 fall 的所有文档
查询文档
# 通过 find 对象来查找文档
# db.collection.find(query,projection)
# query:查询条件
# projection:使用投影操作符指定返回的键
db.article.find() # 查询 article 中的全部文档
指定查找操作
# 读取指定文档
# db.collection.find().limit(Number)
db.article.find().limit(2) # 只查看符合条件的的2条数据
# 跳过指定数量的文档
# db.collection.find().limit(NUMBER).skip(NUMBER)
db.article.find().limit(2).skip(2) # 跳过两条数据,查看两条数据
排序操作
# db.collection.find().sort({KEY:1})
# 1 为升序, -1 为降序
db.article.find().sort({likes:-1}) # 以 likes 字段进行降序排列
索引
# 创建索引提高查询效率
# db.collection.createIndex(keys,options)
# option 中的配置选择
# background 创建过程中会阻塞其他的数据库操作,设置为 true 表示后台创建,默认值为 false
# unique 设置为 true 表示唯一索引
db.article.createIndex({"title":1,"description":-1},{background:true})
db.article.getIndexes() # 查看集合中已经创建的索引
聚合
# 聚合表示对数据的多个内容进行操作
db.article.aggregate([{$group:}])
rs
如果出现错误,node is not in primary or recovering state,说明当前节点并不是主节点或者是恢复状态
Repica Set
mongod
mongod
是 MongoDB 数据库管理系统的守护进程(daemon),负责处理数据库的读写操作以及管理数据的存储和索引等。它是 MongoDB 的核心组件之一,具体功能包括:
- 数据存储:
mongod
负责将数据存储在磁盘上并管理数据文件。 - 客户端连接管理:
mongod
处理来自客户端的连接请求,并能够同时处理多个连接。 - 数据操作:它执行对数据库的增、删、改、查等操作。
- 索引管理:
mongod
负责创建和维护数据库索引,以提高查询性能。 - 复制与故障转移:在配置了复制集的环境中,
mongod
还负责数据的复制和故障转移。 - 聚合与查询:支持 MongoDB 查询语言,以便在文档中检索和聚合数据。
mongod
命令(mongo + god),哈哈哈。
mongod --version
用来获取版本
使用集群
# 进入 mongosh
moingosh
# 切换到 admin 然后关闭
use admin
rs.initiate()
exit
rs.help() # rs 命令是集群相关的命令
# Command replSetInitiate requires authentication
mongosh -u fall
如果你使用 mongod 进行配置,你可能使用到以下的命令
--replSet
设置集群的名称--port
设置网络端口--dbpath
设置数据的路径--authenticationDatabase
,--username
、--password
认证的详情
mongod --replSet rs0 \
--port 27017 \
--dbpath /path/to/your/mongodb/dataDirectory \
--authenticationDatabase "admin" \
--username "fall" \
--password "password123"